#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>

using namespace std;
//
//int main()
//{
//    const unordered_map<char, int> hash = {
//    {'A', 2}, {'B', 2}, {'C', 2}, {'D', 3}, {'E', 3}, {'F', 3},
//    {'G', 4}, {'H', 4}, {'I', 4}, {'J', 5}, {'K', 5}, {'L', 5}, {'M', 6}, {'N', 6}, {'O', 6},
//    {'P', 7}, {'Q', 7}, {'R', 7}, {'S', 7}, {'T', 8}, {'U', 8}, {'V', 8}, {'W', 9}, {'X', 9}, {'Y', 9}, {'Z', 9}
//    };
//
//    int n = 0;
//    while (cin >> n)
//    {
//        vector<string> strs(n);
//        for (int i = 0; i < n; ++i)
//            cin >> strs[i];
//
//        unordered_set<string> set;
//        for (auto& str : strs)
//        {
//            string nums;
//            for (int i = 0; i < str.size(); ++i)
//            {
//                if (nums.size() == 3)
//                    nums += "-";
//
//                if (str[i] >= 'A' && str[i] <= 'Z')
//                    ;
//                else if (str[i] >= '0' && str[i] <= '9')
//                    nums += str[i];
//            }
//            set.insert(nums);
//        }
//
//        vector<string> ans(set.begin(), set.end());
//        sort(ans.begin(), ans.end());
//        for (const auto key : ans)
//            cout << key << endl;
//    }
//
//    return 0;
//}

//
const unordered_map<char, int> hash = {
{'A', 2}, {'B', 2}, {'C', 2}, {'D', 3}, {'E', 3}, {'F', 3},
{'G', 4}, {'H', 4}, {'I', 4}, {'J', 5}, {'K', 5}, {'L', 5}, {'M', 6}, {'N', 6}, {'O', 6},
{'P', 7}, {'Q', 7}, {'R', 7}, {'S', 7}, {'T', 8}, {'U', 8}, {'V', 8}, {'W', 9}, {'X', 9}, {'Y', 9}, {'Z', 9}
};

int main()
{


    string str = "DC";
    for (auto key : str)
    {
        cout << hash.at(key) << endl;
    }
 
	return 0;
}



//#include <iostream>
//#include <vector>
//#include <algorithm>
//
//using namespace std;
//
//void dfs(const vector<int>& targets, int pos, int sum, int m, vector<int> path, vector<vector<int>>& ans)
//{
//    if (sum == m)
//    {
//        ans.push_back(path);
//        return;
//    }
//
//    for (int i = pos; i < targets.size(); ++i)
//    {
//        sum += targets[i];
//        if (sum > m)
//            break;
//
//        path.push_back(targets[i]);
//        dfs(targets, i + 1, sum, m, path, ans);
//        sum -= targets[i];
//        path.pop_back();
//    }
//}
//
//int main()
//{
//    int n = 0, m = 0;
//    while (cin >> n >> m)
//    {
//        vector<int> targets(n);
//        for (int i = 1; i < n + 1; ++i)
//            targets[i - 1] = i;
//
//        vector<vector<int>> ans;
//        vector<int> path;
//        dfs(targets, 0, 0, m, path, ans);
//        sort(ans.begin(), ans.end(), [](vector<int> a, vector<int> b) {
//            long long suma = 0, sumb = 0;
//            int i = 0, j = 0;
//            while (i < a.size() || j < b.size())
//            {
//                suma *= 10, sumb *= 10;
//                if (i < a.size())
//                    suma += a[i];
//                if (j < b.size())
//                    sumb += b[j];
//                i++, j++;
//            }
//
//            return suma < sumb;
//            });
//
//        for (auto vals : ans)
//        {
//            for (auto val : vals)
//            {
//                cout << val << " ";
//            }
//            cout << endl;
//        }
//    }
//
//    return 0;
//}